#include <iostream>
#include <string>
#include <map>
#define MAX 1000 
using namespace std;

string str[5]={"dragon","ninja","iceman","lion","wolf"};
map <string,int> MAP;

class weapon{
	public:
	int AttackVal;
	int number;
	string name; 
	weapon(int number_,int AttackVal_=0) :AttackVal(AttackVal_){
		switch( number_){
			case 0: name = "sword";break;
			case 1: name = "bomb";break;
			case 2: name = "arrow";break;
		}
	}
	void changerAttackVal(){
		
	}
};
class warrior{
	int SerialNumber,LifeVal;
	public:
	warrior(int LifeVal_=0,int SerialNumber_=0):LifeVal(LifeVal_),SerialNumber(SerialNumber_){
	}
}; 
class dargon:public warrior{
	public:
	weapon *OneOfWeapon;
	double morale;
	dargon(int SerialNumber_,int LifeVal_,int NumberOfweapon_,double morale_) :warrior(SerialNumber_,LifeVal_),morale(morale_){
		switch(NumberOfweapon_){
			case 0:OneOfWeapon = new weapon(NumberOfweapon_); break;
			case 1:OneOfWeapon = new weapon(NumberOfweapon_); break;
			case 2:OneOfWeapon = new weapon(NumberOfweapon_); break;
		} 
	}
}; 
class ninja:public warrior{public:
	weapon *OneOfWeapon,*TwoOfWeapon;
	ninja(int SerialNumber_,int LifeVal_,int NumberOfweapon1_,int NumberOfweapon2_) :warrior(SerialNumber_,LifeVal_){
		switch(NumberOfweapon1_){
			case 0:OneOfWeapon = new weapon(NumberOfweapon1_); break;
			case 1:OneOfWeapon = new weapon(NumberOfweapon1_); break;
			case 2:OneOfWeapon = new weapon(NumberOfweapon1_); break;
		}
		switch(NumberOfweapon2_){
			case 0:TwoOfWeapon = new weapon(NumberOfweapon2_); break;
			case 1:TwoOfWeapon = new weapon(NumberOfweapon2_); break;
			case 2:TwoOfWeapon = new weapon(NumberOfweapon2_); break;
		}		
	}
}; 
class iceman:public warrior{public:
	weapon *OneOfWeapon;
	iceman(int SerialNumber_,int LifeVal_,int NumberOfweapon_) :warrior(SerialNumber_,LifeVal_){
		switch(NumberOfweapon_){
			case 0:OneOfWeapon = new weapon(NumberOfweapon_); break;
			case 1:OneOfWeapon = new weapon(NumberOfweapon_); break;
			case 2:OneOfWeapon = new weapon(NumberOfweapon_); break;
		}	
	}
}; 
class lion:public warrior{public:
	int loyalty;
	lion(int SerialNumber_,int LifeVal_,int loyalty_):warrior(SerialNumber_,LifeVal_),loyalty(loyalty_){
	}
};
class wolf:public warrior{public:
	wolf(int SerialNumber_,int LifeVal_):warrior(SerialNumber_,LifeVal_){
		
	}
};
warrior *WR[MAX],*WB[MAX];

int main(){
	dargon *p =NULL;
	WR[0] = new ninja(TotalNumber,MAP[s[i]],TotalNumber%3,RemainLife/MAP[s[i]]);
	return 0; 
}
